package prj3;

import java.util.GregorianCalendar;

import prj3.exceptions.WrongQueryModeException;

public interface IQueryEngine {

	public void setInvocationParameters(float percentTemporalStore,
			float percentGeoStore, int precision);
	
	public boolean getSimulationData(double tilt, double excentricity, 
			double angularSeparation, int timeStep,
			GregorianCalendar startDate, GregorianCalendar endDate,
			double startLatitude, double endLatitude, 
			double startLongitude, double endLongitude);
	
	public void startSimulationInput(float tilt, float excentricity, float gridStep, float timeStep);
	public void inputCell(SphericalCell cell) throws WrongQueryModeException;
	public void stopSimulationInput();
	
	
	public float getMinTemperature();
	public float getMinTemperatureLongitude();
	public float getMinTemperatureLatitude();
	public GregorianCalendar getMinTemperatureTime();
	
	public float getMaxTemperature();
	public float getMaxTemperatureLongitude();
	public float getMaxTemperatureLatitude();
	public GregorianCalendar getMaxTemperatureTime();
	
	public float getAvgTemperatureForCell(BufferedEarthCell cell);
	public float getAvgTemperatureForTime(GregorianCalendar time);
	
	
}
